/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    let set = new Set(nums1);
    let returnset = new Set();
    for(let i = 0;i < nums2.length;i++) {
        set.has(nums2[i])&&returnset.add(nums2[i]);
    }
    // console.log("---set",returnset);
    return Array.from(returnset);
};

intersection([1,23,4,5],[3,1,4])
// Array.from 能把类数组类型转换为数组。


// 进阶：不同数量的取最小数量。有的放入数组，查询过之后把该元素换成infinity，下次就不会计入indexOf中。

var intersect = function(nums1, nums2) {
    let returnarr = nums2.filter((item)=>{
        let index = nums1.indexOf(item);
        return index!==-1?nums1[index] = Infinity :false;
    })  
    console.log(returnarr,"--");
    return returnarr
};
intersect([4,9,5],[9,4,9,8,4])